It is going away.
monitor = gdk_display_get_primary_monitor (display);
gdk_monitor_get_geometry (monitor, &monitor_bounds);
- gtk_window_move (GTK_WINDOW (window),
- monitor_bounds.x + (monitor_bounds.width - window_width) / 2,
- monitor_bounds.y + (monitor_bounds.height - window_height) / 2);
-
gtk_widget_show (window);
gtk_main ();
['testtreesort'],
['testverticalcells'],
['treestoretest'],
- ['testxinerama'],
['testgrouping'],
['testtooltips'],
['testexpand'],
{
GtkWidget *label = data;
gchar *msg;
- gint x, y;
- gtk_window_get_position (GTK_WINDOW (widget), &x, &y);
-
- msg = g_strdup_printf ("size: %d x %d\n"
- "position: %d, %d",
- allocation->width, allocation->height,
- x, y);
+ msg = g_strdup_printf ("size: %d x %d\n", allocation->width, allocation->height);
gtk_label_set_text (GTK_LABEL (label), msg);
w, h);
}
-static void
-set_location_callback (GtkWidget *widget,
- gpointer data)
-{
- gint x, y;
-
- get_ints (data, &x, &y);
-
- gtk_window_move (g_object_get_data (data, "target"), x, y);
-}
-
-static void
-move_to_position_callback (GtkWidget *widget,
- gpointer data)
-{
- gint x, y;
- GtkWindow *window;
-
- window = g_object_get_data (data, "target");
-
- gtk_window_get_position (window, &x, &y);
-
- gtk_window_move (window, x, y);
-}
-
static void
resizable_callback (GtkWidget *widget,
gpointer data)
control_window);
gtk_container_add (GTK_CONTAINER (vbox), button);
- button = gtk_button_new_with_label ("Move");
- g_signal_connect (button,
- "clicked",
- G_CALLBACK (set_location_callback),
- control_window);
- gtk_container_add (GTK_CONTAINER (vbox), button);
-
- button = gtk_button_new_with_label ("Move to current position");
- g_signal_connect (button,
- "clicked",
- G_CALLBACK (move_to_position_callback),
- control_window);
- gtk_container_add (GTK_CONTAINER (vbox), button);
-
button = gtk_check_button_new_with_label ("Allow resize");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
g_signal_connect (button,
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_name (window, "main_window");
- gtk_window_move (GTK_WINDOW (window), 50, 20);
gtk_window_set_default_size (GTK_WINDOW (window), -1, 400);
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
gtk_container_add (GTK_CONTAINER (window), notebook);
gtk_window_set_default_size (GTK_WINDOW (window), 300, 300);
- gtk_window_move (GTK_WINDOW (window), x, y);
gtk_widget_show (window);
return GTK_NOTEBOOK (notebook);
gdouble y,
GtkWidget *popup)
{
- gint width, height, win_x, win_y;
- GtkWidget *widget;
-
- widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (motion));
-
- gtk_window_get_size (GTK_WINDOW (popup), &width, &height);
- gtk_window_get_position (GTK_WINDOW (widget), &win_x, &win_y);
- gtk_window_move (GTK_WINDOW (popup),
- (int) win_x + x - width / 2,
- (int) win_y + y - height / 2);
}
static gboolean
+++ /dev/null
-/* testmultidisplay.c
- * Copyright (C) 2001 Sun Microsystems Inc.
- * Author: Erwann Chenede <erwann.chenede@sun.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "config.h"
-#include <stdlib.h>
-#include <gtk/gtk.h>
-
-static void
-label_set_text_for_monitor (GtkLabel *label,
- GdkMonitor *monitor)
-{
- GdkRectangle monitor_geom;
- gchar *str;
-
- gdk_monitor_get_geometry (monitor, &monitor_geom);
-
- str = g_strdup_printf ("<big><span foreground='white' background='black'>"
- "%s %s</span></big>\n"
- "<i>Width - Height </i>: (%d,%d)\n"
- "<i>Top left coordinate </i>: (%d,%d)\n"
- "<i>Primary monitor</i>: %s",
- gdk_monitor_get_manufacturer (monitor),
- gdk_monitor_get_model (monitor),
- monitor_geom.width, monitor_geom.height,
- monitor_geom.x, monitor_geom.y,
- gdk_monitor_is_primary (monitor) ? "YES" : "no");
- gtk_label_set_markup (label, str);
- g_free (str);
-}
-
-static void
-request (GtkWidget *widget,
- gpointer user_data)
-{
- GdkDisplay *display = gtk_widget_get_display (widget);
- GdkMonitor *monitor = gdk_display_get_monitor_at_surface (display,
- gtk_widget_get_surface (widget));
-
- if (monitor == NULL)
- gtk_label_set_markup (GTK_LABEL (user_data),
- "<big><span foreground='white' background='black'>Not on a monitor </span></big>");
- else
- label_set_text_for_monitor (GTK_LABEL (user_data), monitor);
-}
-
-static void
-monitor_changed_cb (GdkMonitor *monitor,
- GParamSpec *pspec,
- GtkWidget *label)
-{
- request (label, label);
-}
-
-static void
-monitor_added (GdkDisplay *display,
- GdkMonitor *monitor,
- gpointer unused)
-{
- GtkWidget *window, *label, *vbox, *button;
- GdkRectangle monitor_geom;
-
- gdk_monitor_get_geometry (monitor, &monitor_geom);
-
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-
- gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
- gtk_window_move (GTK_WINDOW (window), (monitor_geom.width - 200) / 2 + monitor_geom.x,
- (monitor_geom.height - 200) / 2 + monitor_geom.y);
-
- label = gtk_label_new (NULL);
- label_set_text_for_monitor (GTK_LABEL (label), monitor);
- vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 1);
- gtk_box_set_homogeneous (GTK_BOX (vbox), TRUE);
- gtk_container_add (GTK_CONTAINER (window), vbox);
- gtk_container_add (GTK_CONTAINER (vbox), label);
- button = gtk_button_new_with_label ("Query current monitor");
- g_signal_connect (button, "clicked", G_CALLBACK (request), label);
- gtk_container_add (GTK_CONTAINER (vbox), button);
- button = gtk_button_new_with_label ("Close");
- g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL);
- gtk_container_add (GTK_CONTAINER (vbox), button);
- gtk_widget_show (window);
-
- g_signal_connect (monitor, "notify",
- G_CALLBACK (monitor_changed_cb), label);
- g_signal_connect_swapped (monitor, "invalidate",
- G_CALLBACK (gtk_widget_destroy), window);
-}
-
-int
-main (int argc, char *argv[])
-{
- GdkDisplay *display;
- gint i, num_monitors;
-
- gtk_init ();
-
- display = gdk_display_get_default ();
-
- g_signal_connect (display, "monitor-added", G_CALLBACK (monitor_added), NULL);
-
- num_monitors = gdk_display_get_n_monitors (display);
- if (num_monitors == 1)
- g_warning ("The current display only has one monitor.");
-
- for (i = 0; i < num_monitors; i++)
- {
- GdkMonitor *monitor;
-
- monitor = gdk_display_get_monitor (display, i);
- monitor_added (display, monitor, NULL);
- }
-
- gtk_main ();
-
- return 0;
-}
test_resize_popup (void)
{
GtkWidget *window;
- gint x, y, w, h;
+ gint w, h;
/* testcase for the dnd window */
window = gtk_window_new (GTK_WINDOW_POPUP);
gtk_window_set_display (GTK_WINDOW (window), gdk_display_get_default ());
gtk_window_resize (GTK_WINDOW (window), 1, 1);
- gtk_window_move (GTK_WINDOW (window), -99, -99);
-
- gtk_window_get_position (GTK_WINDOW (window), &x, &y);
gtk_window_get_size (GTK_WINDOW (window), &w, &h);
- g_assert_cmpint (x, ==, -99);
- g_assert_cmpint (y, ==, -99);
g_assert_cmpint (w, ==, 1);
g_assert_cmpint (h, ==, 1);
g_timeout_add (200, stop_main, NULL);
gtk_main ();
- gtk_window_get_position (GTK_WINDOW (window), &x, &y);
gtk_window_get_size (GTK_WINDOW (window), &w, &h);
- g_assert_cmpint (x, ==, -99);
- g_assert_cmpint (y, ==, -99);
g_assert_cmpint (w, ==, 1);
g_assert_cmpint (h, ==, 1);
gtk_widget_destroy (window);
}
-static void
-test_show_hide2 (void)
-{
- GtkWidget *window;
- gint x, y, w, h, w1, h1;
-
- g_test_bug ("696882");
-
- /* test that hide/show does not affect the size,
- * even when get_position/move is called
- */
-
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-
- gtk_widget_show (window);
-
- g_timeout_add (100, stop_main, NULL);
- gtk_main ();
-
- gtk_window_get_position (GTK_WINDOW (window), &x, &y);
- gtk_window_get_size (GTK_WINDOW (window), &w, &h);
- gtk_widget_hide (window);
-
- g_timeout_add (100, stop_main, NULL);
- gtk_main ();
-
- gtk_window_get_size (GTK_WINDOW (window), &w1, &h1);
- g_assert_cmpint (w, ==, w1);
- g_assert_cmpint (h, ==, h1);
-
- gtk_window_move (GTK_WINDOW (window), x, y);
- gtk_widget_show (window);
-
- g_timeout_add (100, stop_main, NULL);
- gtk_main ();
-
- gtk_window_get_size (GTK_WINDOW (window), &w1, &h1);
- g_assert_cmpint (w, ==, w1);
- g_assert_cmpint (h, ==, h1);
-
- gtk_widget_destroy (window);
-}
-
-static void
-test_show_hide3 (void)
-{
- GtkWidget *window;
- gint x, y, w, h, w1, h1;
-
- g_test_bug ("696882");
-
- /* test that hide/show does not affect the size,
- * even when get_position/move is called and
- * a default size is set
- */
-
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
-
- gtk_widget_show (window);
-
- g_timeout_add (100, stop_main, NULL);
- gtk_main ();
-
- gtk_window_get_position (GTK_WINDOW (window), &x, &y);
- gtk_window_get_size (GTK_WINDOW (window), &w, &h);
- gtk_widget_hide (window);
-
- g_timeout_add (100, stop_main, NULL);
- gtk_main ();
-
- gtk_window_get_size (GTK_WINDOW (window), &w1, &h1);
- g_assert_cmpint (w, ==, w1);
- g_assert_cmpint (h, ==, h1);
-
- gtk_window_move (GTK_WINDOW (window), x, y);
- gtk_widget_show (window);
-
- g_timeout_add (100, stop_main, NULL);
- gtk_main ();
-
- gtk_window_get_size (GTK_WINDOW (window), &w1, &h1);
- g_assert_cmpint (w, ==, w1);
- g_assert_cmpint (h, ==, h1);
-
- gtk_widget_destroy (window);
-}
-
int
main (int argc, char *argv[])
{
g_test_add_func ("/window/resize", test_resize);
g_test_add_func ("/window/resize-popup", test_resize_popup);
g_test_add_func ("/window/show-hide", test_show_hide);
- g_test_add_func ("/window/show-hide2", test_show_hide2);
- g_test_add_func ("/window/show-hide3", test_show_hide3);
return g_test_run ();
}